//
//  UIViewController+LMTabBarViewController.h
//  Conva
//
//  Created by cruise on 2018/1/6.
//  Copyright © 2018年 com.conva. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef void (^LMPopSelectTabBarChildViewControllerCompletion)(__kindof UIViewController *selectedTabBarChildViewController);

@interface UIViewController (LMTabBarViewController)

/*!
 * Pop 到当前 `NavigationController` 的栈底，并改变 `TabBarController` 的 `selectedViewController` 属性，并将被选择的控制器作为返回值返回。
 @param index 需要选择的控制器在 `TabBar` 中的 index。
 @return 最终被选择的控制器。
 @attention 注意：方法中的参数和返回值都是 `UIViewController` 的子类，但并非 `UINavigationController` 的子类。
 */
- (UIViewController *)lm_popSelectTabBarChildViewControllerAtIndex:(NSUInteger)index;

/**
 *  Pop 到当前 'NavigationController' 的栈底，并改变 'TabBarController' 的 'selectedViewController' 属性，并将被选择的控制器在 'Block' 回调中返回
 *
 *  @param index      需要选择的控制器在 'TabBar' 中的 index
 *  @param completion 注意：方法中的参数和返回值都是 'UIViewController' 的子类，但并非 'UINavigationController' 的子类
 */
- (void)lm_popSelectTabBarChildViewControllerAtIndex:(NSUInteger)index completion:(LMPopSelectTabBarChildViewControllerCompletion)completion;

@end
